Composing charts for displaying data is a common task in many situations. For example, bar charts or line charts may illustrate the revenue of a company over time. Also, charts may be used to illustrate the increase or decrease of a population of a particular endangered species. In the Internet context, a user may access a website and, via a user interface, request a chart to be generated that indicates the change in the user's investments for a particular stock during a specific date-time range.
In order to generate a chart of data where one of the axes depicts, e.g. time, a charting mechanism will typically ask a user to input a date-time (i.e. temporal) range. For instance, in order to chart information that illustrates the average price of a particular stock over a period of time, the user may enter Jan. 1, 2006 as the start date and Mar. 1, 2007 as the end date. Various approaches may be implemented that determine a temporal interval (e.g. 1-day, 1-week, 2-week, etc.) in which data that “satisfies” the temporal range is aggregated. For example, given a one year temporal range and a temporal interval of one month, data will be grouped into twelve separate data display elements (e.g. a bar or a point on a chart) where each data display element corresponds to data associated with a different month of the year indicated by the temporal range.
One approach for determining an interval is to apply a fixed interval, meaning that the interval is always the same no matter what the user enters as the range. Therefore, in the above example, if the fixed temporal interval is one day, then there will be 425 intervals or data points to chart. This may be problematic. Many charting mechanisms output charting data to a small portion of a computer display, for example one quadrant of the computer display. This large number of data display elements may not fit within the display area. Even if the display area is the entire computer display, with 425 data points that must be displayed, it will be difficult for the user to distinguish one data point from another data point.
In another approach, rather than using a fixed interval no matter what range of values is entered, the user is prompted to enter an interval. In some situations, given a relatively straight-forward range (e.g. one year), a user may easily determine the interval (e.g. 1-month interval for a one year temporal range). However, many situations require the user to do non-trivial mental calculations.
For example, suppose that a user is interested in a temporal range where Mar. 5, 2006 is the start date and Apr. 23, 2006 is the end date. If the user chose a single day as the temporal interval, then the number of intervals would be 50, which may be too many depending on the size of the display area of the computer display. If the user chose one month or one week as the temporal interval, then either choice results in too few intervals (two intervals and eight intervals respectively) to illustrate sufficiently the change over time of what the data is representing (e.g. stock price change). Therefore, the user would have to choose either two, three, or four days as the temporal interval. Depending on the size of the display area, only one of the three possible temporal intervals may cause the charting mechanism to produce a chart that is useful (i.e. enough information is provided) and appropriate (i.e. not too much information is provided) to the user. In sum, requiring the user to enter a temporal interval results in the possibility that the user will choose many “wrong” temporal intervals before a “correct” temporal interval is chosen.
Because of these and potentially other drawbacks, the foregoing approaches do not provide wholly satisfactory results.